home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 026-050 / scopedisk26 / mdu365 / m2du365.docs < prev    next >
Text File  |  1995-03-18  |  18KB  |  480 lines

  1. M2Du 3.65
  2. ~~~~~~~~~
  3.  - By Greg Browne - 1821 Ocotillo, Alamogordo NM 88310  (505) 437-0807
  4.  
  5. DirUtil in Modula-2 - 50-1000 files CLI or WB
  6.  Last modified - 7/24/88
  7.  
  8. CONTACT:
  9.  CIS [72250,106]
  10.  Alamo FastKode ROS (505)-437-2280 (24 hr 300-9600 baud)
  11.  New Horizons (505)-437-9117 (7pm-8am 300-2400)
  12.  
  13. DISCLAIMER:
  14.  I am not responsible for anything! Use at your own risk.
  15.  
  16. P.D. NOTICE:
  17.  This version of the executible is placed in the public domain. FREE!
  18.  
  19. THANKS:
  20.  Richie Bielack, Martin Taillefer, Matt Dillon, Brett Blevins,
  21.  Jim Kunzman, Chuck Layton, Rick Sinars and others for various reasons.
  22.  
  23. +++++++++++++++++
  24. GENERAL OPERATION
  25. +++++++++++++++++
  26.  
  27. CLITail:
  28. Accepts arguments (not in WB yet):
  29.   f = Start with FastDir in place.
  30.   t = FastDir "T"emporary - turns off after each use. You must turn it
  31.       on EVERY time you want to use it.
  32.   i = Incr max files-per-dir by 50 (multiple 'i' ok).
  33.   d = Decr max files-per-dir by 50 (multiple 'd' ok).
  34.   b = Window to BOTTOM half of SCREEN (if INTERLACED).
  35.  
  36. STARTUP Du.hist:
  37. Read sample Du.hist file for how to set up some startup commands which
  38. complement, duplicate, and expand the CLItail commands.
  39.  
  40. COMMAND ACTIVATION:
  41. LEFT & RIGHT mouse button press & RELEASE over gadget (or name) to register.
  42.  
  43. CONFIRMING:
  44. Messy & destructive commands need confirmation.  When asked to "HIT (name)
  45. again", USE THE LEFT MOUSEBUTTON.  The right mousebutton will NOT confirm
  46. actions, even those started with the right mousebutton.
  47.  
  48.  
  49. INTERRUPTING:
  50. Multi-actions interrupt by clicking a gadget (including filewindow) with the
  51. LEFT mousebutton.  Stop is AFTER current pass is complete. When the alternate
  52. pointer is visible, clicks are ONLY interrupts.
  53.  
  54. Getting files interrupts with a click in the filewindow. If directory has
  55. too many files, you will be warned.
  56.  
  57. EXECUTE/RUN:
  58. DO, EDIT, & SHOWIFF execute sequentially (prevent disk grinding) until the
  59. last (or only) action. Then the Runcommand (default "run >nil: <nil:") is
  60. used. The Du.hist command #R allows you to change the default.  When these
  61. finish, they do NOT re-read the directory (save more grinding when command
  62. is RUN).  Use hidden 'S' gadget to re-read.
  63.  
  64.  
  65. TITLE BAR:
  66.  nnn/tttt  Time 00:00   R-0   Chip nnnnnn  Fast nnnnnnn  Total  nnnnnnnn
  67. ---------  ----------   ---   ------------------------------------------
  68. current      24 hr       Which              Memory availability
  69.   files/max    format      history item active
  70.  
  71. INITIAL DIRECTORY:
  72. Logs into ram: if run from WorkBench. Logs into Current Dir from CLI.
  73. The #A command in Du.hist allows you to specify initial directory.
  74.  
  75. SIZING WINDOW:
  76. Normal AND 'hidden' gadget. Instantly shrink by clicking the open space
  77. below the title bar. Unshrink by clicking hanging space below the title in
  78. the tiny window.  Tiny window moves - remembers where it was.
  79.  
  80. DEVICE GADGETS: -> df0: df1: df2: dh0: dh1: dh2: dh3: vd0: ram:
  81. LEFT mouse  = put this into S with immediate 'GET'.
  82. RIGHT mouse = put this into the D gadget.
  83. The default names above can be changed with #0 through #8 in Du.hist.
  84.  
  85. FILEWINDOW GADGET:
  86. Click unselected file OR dir and it is "selected". Click a selected name to
  87. unselect it. Most actions need "selected" things to work.
  88.  
  89. NOTE: Any/all filenames AND/OR DIRS may be selected at once.
  90.       See "HIDDEN GADGETS" for a 'HOLD' feature in display.
  91.  
  92. SLIDER GADGET:
  93. Scroll filename window. If slider is filled, all files and directories are
  94. displayed.
  95.  
  96. /\ and \/:
  97.  LEFT mouse  = move 1 file in arrow direction
  98.  RIGHT mouse = move 1 SCREEN in arrow direction
  99.  
  100. MULTIPLE R GADGETS (HISTORY):
  101. 'R' holds a circular list of 20 strings. "R+ R-" scrolls them, and R-nn in
  102. title bar tells which one is in use. Startup looks for a file named Du.hist
  103. in the current directory, and if not found, in the S: directory. FIRST one
  104. found will be used to initialize the strings as explained in the example
  105. Du.hist file. If NEITHER found, all R gadgets will be empty.  The file is
  106. just lines in plain text.  A sample file with instructions is included.
  107.  
  108. History changes must be typed in AND <ENTER>ed while program waits for
  109. normal gadget activity to be permanent.  Remember, while commands are going
  110. on, the program only looks at gadget selection as an interrupt.  Changes
  111. made during activity, OR ended without <ENTER>ing will be TEMPORARY. Then,
  112. scrolling history +- will return last saved history for that item.
  113. Experiment with it.
  114.  
  115. STRING I/O GADGETS: ->  R  S  D
  116.  
  117. All are 255 characters long, but only part of string is seen. To view a
  118. long string, activate the gadget, and use arrows to move through it.
  119.  
  120. (R)un holds command line info for RUN f<ile>+R.  May also be used alone
  121.  OR as the lead item in a command with highlighted file as tail if RUN
  122.  R+f<ile> used. SEE ALSO HISTORY ABOVE AND THE 'R+ R-' button section.
  123.  
  124. (S)ource holds name of the current active device or dir. LEFT mouseclick a
  125.  device gadget and its goes here. CLICK, TYPE, AND <ENTER> in this gadget,
  126.  and your entry will be new current device or dir. If access to it fails,
  127.  the program returns to the last good active dir (or to ram: if that fails).
  128.  Click the RIGHT mousebutton IN the box and a PARENT command is done.
  129.  
  130. (D)estination holds the name of the path (filename in some cases) to use
  131.  for certain GADGET functions. Clicking the RIGHT mousebutton IN the box
  132.  backs the name up to its PARENT level (if any).
  133.  
  134. The Message area at the bottom is NOT a gadget.
  135.  
  136. HIDDEN GADGETS:
  137. Click LEFT mousebutton on LETTER 'R' or 'D' to blank contents of the box.
  138. Click LETTER 'S' for directory re-read of 'S'.
  139. RIGHT mouse on "S" toggles mode and color.
  140.   Black (original color) means re-reads always display from file number 1.
  141.   Green (same as device names) means re-reads try to display from the same
  142.   position as last one. [For comparing similar directories or seeing changes
  143.   in the middle of one.]
  144. RIGHT mouse on the "R" causes the name in the "R" gadget to be read as a
  145.   new history file. IF opened successfully, it will become the new history
  146.   and command file.
  147.  
  148. Finally, there is another unmarked gadget mentioned.
  149. Find it yourself (may encourage someone to read this stuff).
  150.  
  151.  
  152. +++++++++++++++
  153. BUTTON GADGETS: (alphabetically - sortof) Gadgets NOT alphabetic on screen
  154. +++++++++++++++
  155.  
  156.   COPY     (Multifile - consecutive)
  157.   ----
  158. Copy any/all selected file(s) to PATH in D (must be a valid device or dir).
  159. Multiple copy supported, copy to specific filename not supported. Checks
  160. PROTECT gadget setting.
  161.  LEFT mouse  = STOP if file status does not match PROTECT gadget.
  162.  RIGHT mouse = SKIP that file and go on.
  163.  
  164.  
  165.   COPYALL  (CONFIRMED) (Mass file/directory copy)
  166.   -------
  167. Copy entire dir/disk contents, matching tree structure on the fly.  Put
  168. base level source dir name in S and the base dest PATH in D and select
  169. COPYALL (and confirm). This copies EVERYTHING in S AND ITS SUBDIRECTORIES
  170. to D, creating directories as it goes. IF destination fills, you will have
  171. a chance to change disks and continue.
  172.  
  173.  Ex: Copy entire disk (like COPY df0: to df1: all)
  174.        type 'df0:' in S and 'df1:' in D and go.
  175.      Copy devs directory
  176.        Put 'df0:devs' in S and 'df1:devs' (existing OR NOT) in D, and
  177.        start. Creates (if needed) destination directory, copies all files,
  178.        creates df1:devs/printers (if needed) and copies all its files.
  179.  
  180. Specifically confirmed, DOES NOT check PROTECT setting.
  181.  
  182.   COPYif  (CONFIRMED)
  183.   ------
  184. Just like COPYALL, BUT with attention to ARC bit of source FILE's protection
  185. bits. If bit is CLEAR (file changed since last set) it WILL copy the file.
  186. If a DIRECTORY bit is SET it doesn't even go into that directory.
  187.  LEFT mouse  = SET source ARC bit after copy done
  188.  RIGHT mouse = DON'T mess with ARC bit
  189.  
  190.   DELDIR  (CONFIRMED)
  191.   ------
  192. DIRECTORY delete. To work, dir must be selected and EMPTY. ANY/ALL
  193. highlighted directories will be deleted if empty.
  194.  LEFT mouse  = stop if a directory doesn't delete.
  195.  RIGHT mouse = continues EVEN if a directory doesn't delete
  196.  
  197.   DELETE   (CONFIRMED) (Multifile - consecutive)
  198.   ------
  199. FILE delete. Any/all files currently highlighted will be deleted. Message
  200. area shows progress, and delete may be stopped by clicking left mouse
  201. button on any gadget (including filewindow).
  202.  
  203.   DSKCOPY  (CONFIRMED)
  204.   -------
  205. Diskcopy 'S' to 'D'  - BOTH MUST BE df0-df3.  Corrects date so DOS won't be
  206. confused.  IS Interruptible.
  207.  LEFT mouse  = NOVERIFY
  208.  RIGHT mouse = VERIFY
  209.  
  210.   DSKWIPE   (CONFIRMED)
  211.   -------
  212. QUICK WIPE OF disk in 'D'.  MUST BE df0-df3.  Writes fresh root block.
  213.  LEFT mouse  = NOVERIFY
  214.  RIGHT mouse = VERIFY
  215.  
  216.  
  217.   DO f+R  DO R+f   (Multifile - consecutive)
  218.   ------  ------
  219. RUN/EXECUTE command.
  220.  DO R+f executes the 'R' contents with selected items as a tails.
  221.  DO f+R executes selected items with the 'R' content as a tail.
  222.  If no item is selected, both try the R gadget alone.
  223. Uses DOS Execute (like typing a command at > prompt). Also whether command
  224. is RUN or executed depends on other things (more info in first section).
  225. This is NOT like a script handler 'EXECUTE'.
  226.  
  227. *DOES* INCLUDE HIGHLIGHTED DIRECTORY NAMES IN THE ACTIONS
  228.  
  229.   EDIT     (Multifile - consecutive)
  230.   ----
  231. Start editor with selected FILEname(s) as tail(s). If no file selected,
  232. editor will be RUN with no file. Default name is "dme", but the #E command
  233. in Du.hist sets to your favorite name.
  234.  
  235.   FORMAT
  236.   ------
  237. FORMAT disk indicated in 'D'.  MUST BE df0-df3. Names disk "New" and uses
  238. current date.  DOES INSTALL as bootable. IS Interruptible.
  239.  LEFT mouse  = NOVERIFY
  240.  RIGHT mouse = VERIFY
  241.  
  242.   F+ F-
  243.   -----
  244. Change #files-per-directory handled by DU.
  245.  LEFT mouse  = increase 50
  246.  RIGHT mouse = decrease 50. (More files = more memory used.)
  247.  
  248.   GETDIR   (NO SUCH GADGET)
  249.   ------
  250. GETDIR by clicking the RIGHT mouse button over its name.
  251.  
  252.   HPRINT  HTYPE  PRINT  TYPE
  253.   ------  -----  -----  ----
  254. ASCII/HEX file view/print. Destination of PRINT/HPRINT selected with toggle
  255. gadget PRT: (See TOGGLES/FLAGS section). Multiple hardcopy runs interrupt
  256. the same way as other functions. To scroll back and forth in file during
  257. screen output, click left mouse down in upper or lower part of window, or
  258. use scroll bar. Click title bar to quit or interrupt an individual printout
  259. or display. Tabs expanded on 8 columns. NO color sequences or formfeeds.
  260. Line xx of xxx shown in the title bar.  For PRINT this is 256 byte blocks
  261. NOT lines.
  262.  
  263. NOTE:
  264.  If PRINT/HPRINT selected with RIGHT mouse, formfeed will be sent after
  265.  each file.
  266.  
  267.   INFO
  268.   ----
  269. No Gadget.  Program automatically monitors disk insert/remove and changes
  270. to S and D. Redisplays name/free/used for both S & D with every change.
  271.  
  272.  
  273.   INSTALL
  274.   -------
  275. INSTALL disk indicated in 'D'.  MUST BE df0-df3. Writes fresh boot block.
  276.  LEFT mouse  = NOVERIFY
  277.  RIGHT mouse = VERIFY
  278.  
  279.   MAKEDIR
  280.   -------
  281. Make dir named in the D gadget (if valid and not existing). If complete
  282. dev:path not given, dir will be made relative to the path in S. Check is
  283. made to insure you are not trying to create a directory with an already
  284. existing name (or over a file).
  285.  LEFT mouse  = DO re-read S when done
  286.  RIGHT mouse = DON'T re-read.
  287.  
  288.   MOVE     (Multifile - consecutive)
  289.   ----
  290. MOVE items to destination (must be path). Tries RENAME. If that fails, and
  291. 'item' is NOT a directory, tries copy-and-delete-source. DOES check state
  292. of the PROTECT gadget.
  293.  LEFT mouse  = STOP if item does not match PROTECT gadget status
  294.  RIGHT mouse = SKIP that item and go on.
  295.  
  296. *WARNING* - A bug in the ram-handler lets you rename a file in ram: to an
  297.  existing name in ram: without a DOS error 203 and leaves you 2 in the same
  298.  directory. Just so you will be aware, I didn't try to trap that.
  299.  (* vd0: also does that! *)
  300.  
  301.   OldNew
  302.   ------
  303. Tag files based on destination condition.
  304.  LEFT mouse  = tag files which DO exist at dest end (Old)
  305.  RIGHT mouse = tag files which DO NOT exist at dest end (New).
  306.  
  307.   PARENT
  308.   ------
  309. Click RIGHT mousebutton in 'S' or 'D' box for PARENT.
  310.  
  311.   ROOT
  312.   ----
  313. Back up to the root of the current S or D gadget. If this fails with 'S',
  314. return to the last good current directory (or ram: as a last resort).
  315.   LEFT mouse  = Get ROOT of 'S'
  316.   RIGHT mouse = Backup 'D' to its ROOT level
  317.  
  318.   RELABEL
  319.   -------
  320. Relabel disk in 'S' to NAME in 'D', both in memory and on disk. Internal.
  321. 'D' gadget cannot have ":" or "/" in it.
  322.  
  323.   RENAME
  324.   ------
  325. Rename FIRST selected file OR dir (alphabetically) to Name in the D gadget.
  326. Wherever practical, MOVE is faster.
  327.  LEFT mouse  = re-read directory (since it may be still be there)
  328.  RIGHT mouse = NO re-read (old dropped, new not added even if still there).
  329.  
  330.   TAGALL RETAG FLIPTAG UNTAG (ArcTAG)
  331.   ------ ----- ------- ----- (------)
  332. Mass tag operations on all items in a window.
  333. (In some DU's -> TAGALL = ALL   UNTAG = CLEAR)
  334.  
  335. TAGALL selects ALL items. RETAG after multifile operations reselects any
  336. items selected before (if they remain now). FLIPTAG reverses all tags.
  337. UNTAG clears all tags.
  338.  
  339. *** ArcTAG tags files AND directories with the ARCHIVE bit set. There is no
  340.     gadget for this yet - until I decide if it is a good addition - so to
  341.     do this, you use the RIGHT mousebutton on the SIZES gadget above TAGALL.
  342.  
  343.  LEFT mouse  = do with FILES.
  344.  RIGHT mouse = do with DIRECTORIES.
  345.  
  346.   SetNOTE
  347.   -------
  348. Set filenote of FIRST HIGHLIGHTED file OR dir. Current R gadget content
  349. will be used as comment.  To delete a comment, empty R gadget and SETNOTE
  350. (to null comment).
  351.  
  352.   ShoNOTE
  353.   -------
  354. Show filenote (if any) of FIRST HIGHLIGHTED file. Filenote will be shown in
  355. the message area. If [-no comment-] appears, file has no filenote attached
  356. to it.
  357.  
  358.   SetPROT
  359.   -------
  360. Set protection bits on highlighted FILE(s) OR DIR(s).
  361.   LEFT mouse  = work this on FIRST item found highlighted.
  362.   RIGHT mouse = work this on ALL items highlighted.
  363.  
  364. R gadget must hold letter(s) of bits you want SET. Does NOT consider
  365. CURRENT condition of flags - you must include ALL letters you want set. To
  366. get current status, use SHOPROT. Order of letters does NOT matter. Letters
  367. not present will have their bits CLEARED.
  368.  
  369.  Protection bits are (UPPER or lower case o.k.):
  370.   A(rchive bit)           Currently RESET each time a file is changed
  371.   R(ead protect bit)      Ignored by DOS now
  372.   W(rite protect bit)     Ignored by DOS now
  373.   E(xecute protect bit)   Ignored by DOS now
  374.   D(elete protect bit)    Prevents deletion when SET
  375.  
  376.   ShoPROT
  377.   -------
  378. Shows protection bit status on highlighted file OR directory.
  379. Uses current R gadget, so be careful of History items.
  380.  LEFT mouse  = show NEXT highlighted (and unselect)
  381.  RIGHT mouse = scan quickly through ALL highlighted (and unselect)
  382.  
  383.   ShowIFF
  384.   -------
  385. Picture display. IF Du.hist has #S command, this external program will be
  386. on LEFT mouse and internal show routine will be accessed by RIGHT mouse,
  387. otherwise, both will use internal routine.
  388.  
  389.   ZAPALL
  390.   ------
  391. Mass directory-and-related-files delete. Works two ways.
  392.  
  393. 1) If a directory name IS highlighted when ZAPALL is selected, it assumes
  394.    you want to delete that directory AND ALL FILES AND SUBDIRECTORIES IN IT.
  395.  
  396. 2) If NO directory name highlighted, it assumes you want to delete CONTENT
  397.    of the directory (or device) in the S gadget, including ALL files and
  398.    subdirectories, BUT NOT directory itself. (This leaves an empty, but
  399.    existing, directory.
  400.  
  401. Example:
  402. 1) Delete all files in df1:devs (but not df1:devs itself). Put df1:devs
  403.    in S and go. This leaves an empty df1:devs as the S directory.
  404. 2) Delete its files AND IT, TOO. Put 'df1:' in S and select 'devs'
  405.    with one click. Then hit ZAPALL twice (once to select ZAPALL, once to
  406.    CONFIRM ZAPALL), and all the files and directories in 'devs' will be
  407.    deleted, then devs will be deleted (unless it is ASSIGNed to devs:).
  408.  
  409. Gives message area progress reports. Deletes files alphabetically backward,
  410. recursing into directories as encountered.  Watch and see.
  411.  
  412.   R+ R-
  413.   -----
  414. Scroll R history.  READ 'HISTORY' EXPLANATION.
  415.  LEFT mouse  = +
  416.  RIGHT mouse = -
  417.  
  418.   f->R  f->D
  419.   ----  ----
  420. Move FIRST highlighted file (OR directory) into indicated gadget.
  421.  RIGHT mouse on f->D = CONCAT the first item into D (with / if needed).
  422.  
  423.   R->S  R->D  etc.
  424.   ----  ----
  425. Copy current gadget contents around. If R involved, affected history item
  426. is updated. IF S involved, it is treated like a new entry.
  427.  
  428.   R<->S  etc.
  429.   -----
  430. Two-way swaps of gadget content. S<->D is the old SWAP command. If S is
  431. involved, it will be treated as though typed in fresh. If R gadget is
  432. involved, affected history item is updated.
  433.  
  434. +++++++++++++++++++++
  435. TOGGLE (FLAG) GADGETS
  436. +++++++++++++++++++++
  437.  
  438.   PROTECT/ERASE/REPLACE
  439.   ---------------------
  440. Indicates protection used for files at destination end of COPY and MOVE.
  441. (Not honored by COPYALL, COPYif, or ZAPALL, which must be confirmed.)
  442.  
  443.  1. PROTECT - Don't continue if same name file EXISTS at destination.
  444.  2. ERASE   - Don't care about file of same name at destination.
  445.  3. REPLACE - Don't continue UNLESS file of same name EXISTS at destination.
  446.  
  447.   DevNAME/VolNAME
  448.   ---------------
  449. Indicates what type of names S gadget will use.
  450.  
  451.  1. DevNAME -  df0:??  df1:?? etc. will be used.
  452.  2. VolNAME -  disk names (MyVol:??) will be picked up.
  453.  
  454. May be useful where one drive swaps are involved.
  455.  
  456. Drawback in VolNAME mode. ASSIGNed names like devs: can't be used. Program
  457. assumes you want Volume Name of the disk that ASSIGNed device is on and
  458. goes to the root expressed as volume name.
  459.  
  460.   SIZES/DATES
  461.   ===========
  462. Indicates what to display about files. Changes when hit.
  463.  
  464.  1. SIZES - byte file size will show.
  465.  2. DATES - creation dates will show.
  466.  
  467.  
  468.   SysDATE/OldDATE
  469.   ===============
  470. Select date to put on copied files.
  471.  
  472.  1. SysDATE - current system date goes on copies.
  473.  2. OldDATE - creation date of source file goes on copies.
  474.  
  475.   PRT: PAR: SER:
  476.   ==============
  477.  
  478. Showing item is destination for PRINT/HPRINT.
  479.  [SER: can be changed by command #O in Du.Hist.]
  480.